[fix](variant) fix variant column data_serdes not synced #60908
[fix](variant) fix variant column data_serdes not synced #60908eldenmoon merged 1 commit intoapache:masterfrom
Conversation
…array_nullable and ensure_root_node_type When `wrapp_array_nullable()` wraps a ColumnArray with ColumnNullable, it updates `data_types[0]` but not `data_serdes[0]`, leaving a stale serde. Similarly, `ensure_root_node_type()` casts the root column (e.g. INT32 -> JSONB) and updates `data[0]` and `data_types[0]`, but not `data_serdes[0]`. This causes BE crash during MV refresh with row store enabled: when `serialize_text_json()` uses the stale `data_serdes[0]` (e.g. INT32 serde) on the actual column data (e.g. JSONB ColumnString), `assert_cast` fails. Fix: sync `data_serdes[0]` in both `wrapp_array_nullable()` and `ensure_root_node_type()` after updating `data_types[0]`.
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
TPC-H: Total hot run time: 28883 ms |
TPC-DS: Total hot run time: 184167 ms |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
skip check_coverage |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
airborne12
left a comment
There was a problem hiding this comment.
LGTM ✅
Reviewed both fixes:
wrapp_array_nullable(): syncdata_serdes[0]aftermake_nullable(data_types[0])ensure_root_node_type(): syncdata_serdes[0]after root type cast
Verified all 8 data_types[] write sites — these 2 were the only ones missing data_serdes sync. Regression test covers both trigger paths.
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)